//app.js
const loginUrl = require('config').loginUrl;

App({
  onLaunch: function(options) {
    // 展示本地存储能力
    // var logs = wx.getStorageSync('logs') || []
    // logs.unshift(Date.now())
    // wx.setStorageSync('logs', logs)
    // this.showModal(1);
    console.log("opLaunch options==" + JSON.stringify(options));
    if (options.scene == '1104') { //微信聊天主界面下拉，“我的小程序”栏
    }
    let scene = decodeURIComponent(options.query.scene)
    console.log("opLaunch query==" + scene);
    this.globalData.enterScene = scene;
    if (wx.canIUse('getUpdateManager')) {
      this.checkForUpdate();
      console.log("允许更新")
    }
    this.getSystemInfo();
  },
  getSystemInfo: function() {
    let self = this;
    wx.getSystemInfo({
      success: function(res) {
        console.log("res" + JSON.stringify(res))
        self.globalData.screenWidth = res.screenWidth;
        self.globalData.screenHeight = res.screenHeight;
        self.globalData.systemOS = res.system;
      }
    })
  },
  checkForUpdate: function() {
    const updateManager = wx.getUpdateManager()
    updateManager.onCheckForUpdate(function(res) {
      // 请求完新版本信息的回调
      console.log(res.hasUpdate)
      if (res.hasUpdate) {
        wx.showToast({
          title: '发现新版本，即将自动更新',
          icon: 'none',
          mask: true,
          duration: 1500
        });
      }
    })
    //当微信检查到小程序有新版本，会主动触发下载操作（无需开发者触发），当下载完成后，会通过 onUpdateReady 告知开发者。
    updateManager.onUpdateReady(function() {
      // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
      updateManager.applyUpdate()
    })
    updateManager.onUpdateFailed(function() {
      // 新的版本下载失败
      console.log("新版本下载失败")
      wx.showToast({
        title: '新版本下载失败',
        icon: 'none',
        mask: true,
        duration: 1000
      });
    })
  },
  checkSession: function(callback) {
    //校验session_key是否有效，从而避免小程序反复执行登录流程
    wx.checkSession({
      success: res => {
        //session_key 未过期，并且在本生命周期一直有效
        console.log("session_key 未过期")
        this.globalData.isShiXiao = false;
        callback(this.globalData.isShiXiao)
      },
      fail: res => {
        // session_key 已经失效，需要重新执行登录流程
        console.log("session_key 已经失效")
        this.globalData.isShiXiao = true;
        callback(this.globalData.isShiXiao)
      }
    })
  },

  getUserToken: function(isShiXiao, callback) {
    var self = this;
    let token = wx.getStorageSync("token");
    if (!isShiXiao && token) {
      callback(null);
    } else {
      // 登录
      wx.login({
        success: function(data) {
          // 发送 res.code 到后台换取 openId, sessionKey, unionId
          // console.log("login11122====" + JSON.stringify(data));
          wx.request({
            url: loginUrl,
            data: {
              code: data.code
            },
            header: {
              'content-type': 'application/x-www-form-urlencoded' // 默认值
            },
            method: 'POST', //默认是GET
            success: function(res) {
              // debugger;
              // console.log("login1111====" + JSON.stringify(res.data));
              let tempData = res.data
              //token存储在本地
              wx.setStorageSync("token", tempData.data.token);
              // 用户id，分享的时候用
              wx.setStorageSync("userId", tempData.data.user.id);
              //存储渠道名
              wx.setStorageSync("gameTitle", tempData.data.user.title);
              console.log("bndjakvakdv1111===" + tempData.data.user.title)
              callback(null)
            },
            fail: function(res) {
              console.log('获取token失败', res)
              callback(res)
            }
          })
        },
        fail: function(err) {
          console.log('wx.login 接口调用失败，将无法正常使用开放接口等服务', err)
          callback(err)
        }
      })
    }
  },
  globalData: {
    enterScene: "", //进入小程序的路径
    userInfo: null,
    isShiXiao: true,
    activityList: null,
    isAuthorize: false,
    // 玩家金币
    goldnum: 0,
    gameLists: null,
    playLists: null,
    screenWidth: 0,
    screenHeight: 0,
    //任务弹出提示
    taskNum: 0,
    //操作系统
    systemOS: '',
    //配置tabBar
  },

  //==============================废弃===============
  showModal: function(type) {
    wx.showModal({
      title: '请授权后继续操作',
      content: '',
      showCancel: false,
      confirmText: '确定',
      success: res => {
        console.log("success" + res)
        if (type == 1) { //首次登陆 授权
          this.authorize();
        } else if (type == 2) { //授权已被拒绝，再次登陆，引导授权

        }
      },
      fail: res => {
        console.log("fail" + res)
      }
    })
  },

  authorize: function() {
    wx.authorize({
      scope: 'scope.userInfo',
      success: res => {
        console.log('authorize success.', res);
      },
      fail: res => {
        // iOS 和 Android 对于拒绝授权的回调 errMsg 没有统一，需要做一下兼容处理
        if (res.errMsg.indexOf('auth deny') > -1 || res.errMsg.indexOf('auth denied') > -1) {
          // 处理用户拒绝授权的情况
          console.log('authorize fail.', res);
        }
      }
    })
  },

  openSetting: function() {
    //调起客户端小程序设置界面，返回用户设置的操作结果
    wx.openSetting({
      success: function(res) {
        console.log("settting success" + res)
      }
    })
  }
})